//#include<iostream>
//using namespace std;
//int m_current(int avg, int* n_size, int n) {
//	int sum = 0;
//	for (int i = 0; i < n; i++)
//		sum += n_size[i] / avg;
//	return sum;
//}
//int main() {
//	long long int n, m;
//	cin >> n;
//	cin >> m;
//	int* n_size = (int*)calloc(n, sizeof(int));
//	cin >> n_size[0];
//	int min = n_size[0];
//	int sum = n_size[0];
//	for (int i = 1; i < n; i++) {
//		cin >> n_size[i];
//		sum += n_size[i];
//		if (n_size[i] < min)
//			min = n_size[i];
//	}
//	int avg = sum / m;
//	//if (min < avg)
//	//	avg = min;
//
//	//while (avg > 0) {
//	//	//sum = 0;
//	//	//for (int i = 0; i < n; i++)
//	//	//	sum += n_size[i] / avg;
//	//	//if (sum >= m) {
//	//	//	cout << avg << endl;
//	//	//	return 1;
//	//	//}
//	//	//else
//	//	//	avg--;
//
//	//	if (m_current(avg, n_size, n) < m)
//	//		avg /= 2;
//	//	if (m_current(avg, n_size, n) >= m)
//	//		if (m_current(avg + 1, n_size, n) >= m)
//	//			avg = avg / 2 * 3;
//	//		else {
//	//			cout << avg << endl;
//	//			return 1;
//	//		}
//	//}
//	if (sum < m) {
//		cout << 0 << endl;
//		return 0;
//	}
//	while (avg > 1 && m_current(avg, n_size, n) < m)
//		avg /= 2;
//	//if (avg == 0) {
//	//	if (m_current(avg + 1, n_size, n) >= m)
//	//		avg++;
//	//	else {
//	//		cout << 0 << endl;
//	//		return 0;
//	//	}
//	//}
//	while (m_current(avg + 1, n_size, n) >= m)
//		avg++;
//	cout << avg << endl;
//	return 1;
//}